/*
 * Copyright (C) 2015 yixun All Rights Reserved.
 * 
 * FollowUpList.java
 */
package com.yixun.qfbao.xf.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yixun.qfbao.xf.model.enums.CustomerStatusEnum;

import java.math.BigDecimal;
import java.util.Date;

/**
 * [文件名称]<br>
 * FollowUpList.java<br>
 * <br>
 * [文件描述]<br>
 * 客户跟进信息 pojo bean<br>
 * <br>
 * [修改记录]<br>
 * 2015-10-14 15:34:13 创建 陶俊代码生成器<br>
 * 
 * @author 陶俊代码生成器
 * @version 1.00
 */
public class FollowUpList {
	
	/**
	 * 流水号
	 */
	private Long id;
	
	/**
	 * 创建时间
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createTime;
	
	/**
	 * 格式化创建时间
	 */
	private String formatCreateTime;
	public String getFormatCreateTime() {
		
		return formatCreateTime;
	}

	public void setFormatCreateTime(String formatCreateTime) {
		this.formatCreateTime = formatCreateTime;
	}

	/**
	 *更新时间
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;
	
	/**
	 * 报备人
	 */
	private Long staffId;
	
	/**
	 * 跟进客户
	 */
	private Long customerId;
	
	/**
	 * 跟进客户
	 */
	private Long customerPremisesId;
	
	/**
	 * 历史认筹状态:[{key:confirm_status,values:[{no:0,alias:confirm,remark:已认筹},{no:1,alias:dis_confirm,remark:未认筹}]}]
	 */
	private String oldConfirmStatus;
	
	/**
	 * 新认筹状态:[{key:confirm_status,values:[{no:0,alias:confirm,remark:已认筹},{no:1,alias:dis_confirm,remark:未认筹}]}]
	 */
	private String newConfirmStatus;
	
	/**
	 * 历史客户状态:[{key:customer_status,values:[{no:0,alias:normal,remark:报备未确认},{no:1,alias:valid,remark:报备有效},{no:2,alias:
	 * has_see,remark:已带看},{no:3,alias:subscribe,remark:已认购},{no:4,alias:has_sign,remark:已签约},{no:5,alias:has_balance,
	 * remark:已结佣}]}]
	 */
	private String oldCustomerStatus;
	
	/**
	 * 跟进客户状态:[{key:customer_status,values:[{no:0,alias:normal,remark:报备未确认},{no:1,alias:valid,remark:报备有效},{no:2,alias:
	 * has_see,remark:已带看},{no:3,alias:subscribe,remark:已认购},{no:4,alias:has_sign,remark:已签约},{no:5,alias:has_balance,
	 * remark:已结佣}]}]
	 */
	private String newCustomerStatus;
	
	/**
	 * 带看有效期
	 */
	private Long validDays;
	
	/**
	 * 允许中介查看
	 */
	private Boolean canSee;
	
	/**
	 * 跟进描述
	 */
	private String remark;
	
	/**
	 * 申请带看日期
	 */
	private String applyLookDay;
	
	/**
	 * 1 个人带看 2产品宣讲 3 商务会议
	 */
	private String seeMode;
	
	/**
	 * 目标楼盘
	 */
	private Long targetPremisesId;
	
	/**
	 * 1 海外房购置 2 海外移民
	 */
	private String signProject;
	
	/**
	 * 签约时间
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date signDate;
	
	/**
	 * 签约金额
	 */
	private BigDecimal signAmount;
	
	/**
	 * 总金额
	 */
	private BigDecimal totalAmount;
	
	/**
	 * 平台分佣
	 */
	private BigDecimal platformAmount;
	
	/**
	 * 中介分佣
	 */
	private BigDecimal intermediaryAmount;
	
	/**
	 * 跟进客户状态名称
	 */
	private String newCustomerStatusName;
	
	/**
	 * 报备人名称
	 */
	private String staffName;
	
	/**
	 * 目标楼盘名称
	 */
	private String targetPremisesName;
	
	/**
	 * 历史佣金状态
	 */
	private String oldCommissionStatus;
	
	/**
	 * 新佣金状态
	 */
	private String newCommissionStatus;
	
	/**
	 * V10新房跟进uuid
	 */
	private String firsthandFollowUuid;
	
	/**
	 * 置业顾问
	 */
	private String adviser;
	
	/**
	 * 实际到访时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date visitTime;

	/**
	 * 报备跟进类型 客戶跟进类型 1  状态变更记录 2  决策无效记录 3
	 */
	private String followUpType;

	public String getFollowUpType() {
		return followUpType;
	}

	public void setFollowUpType(String followUpType) {
		this.followUpType = followUpType;
	}
	
	public String getOldCommissionStatus() {
		return oldCommissionStatus;
	}
	
	public void setOldCommissionStatus(String oldCommissionStatus) {
		this.oldCommissionStatus = oldCommissionStatus;
	}
	
	public String getNewCommissionStatus() {
		return newCommissionStatus;
	}
	
	public void setNewCommissionStatus(String newCommissionStatus) {
		this.newCommissionStatus = newCommissionStatus;
	}
	
	/**
	 * 跟进类型: 1、开发商,2、分销商
	 */
	private String followType;

	/**
	 * 到访次数，到访与认筹之间 适用于复访
	 */
	private Integer visitedCount;
	
	/**
	 * 设置 :流水号
	 */
	public void setId(Long id) {
		this.id = id;
	}
	
	/**
	 * 获取 :流水号
	 */
	public Long getId() {
		return this.id;
	}
	
	/**
	 * 设置 :创建时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	/**
	 * 获取 :创建时间
	 */
	public Date getCreateTime() {
		return this.createTime;
	}
	
	/**
	 * 设置 :更新时间
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	
	/**
	 * 获取 :更新时间
	 */
	public Date getUpdateTime() {
		return this.updateTime;
	}
	
	/**
	 * 设置 :报备人
	 */
	public void setStaffId(Long staffId) {
		this.staffId = staffId;
	}
	
	/**
	 * 获取 :报备人
	 */
	public Long getStaffId() {
		return this.staffId;
	}
	
	/**
	 * 设置 :跟进客户
	 */
	public void setCustomerId(Long customerId) {
		this.customerId = customerId;
	}
	
	/**
	 * 获取 :跟进客户
	 */
	public Long getCustomerId() {
		return this.customerId;
	}
	
	/**
	 * 设置 :跟进客户
	 */
	public void setCustomerPremisesId(Long customerPremisesId) {
		this.customerPremisesId = customerPremisesId;
	}
	
	/**
	 * 获取 :跟进客户
	 */
	public Long getCustomerPremisesId() {
		return this.customerPremisesId;
	}
	
	/**
	 * 设置 :历史认筹状态:[{key:confirm_status,values:[{no:0,alias:confirm,remark:已认筹},{no:1,alias:dis_confirm,remark:未认筹}]}]
	 */
	public void setOldConfirmStatus(String oldConfirmStatus) {
		this.oldConfirmStatus = oldConfirmStatus;
	}
	
	/**
	 * 获取 :历史认筹状态:[{key:confirm_status,values:[{no:0,alias:confirm,remark:已认筹},{no:1,alias:dis_confirm,remark:未认筹}]}]
	 */
	public String getOldConfirmStatus() {
		return this.oldConfirmStatus;
	}
	
	/**
	 * 设置 :新认筹状态:[{key:confirm_status,values:[{no:0,alias:confirm,remark:已认筹},{no:1,alias:dis_confirm,remark:未认筹}]}]
	 */
	public void setNewConfirmStatus(String newConfirmStatus) {
		this.newConfirmStatus = newConfirmStatus;
	}
	
	/**
	 * 获取 :新认筹状态:[{key:confirm_status,values:[{no:0,alias:confirm,remark:已认筹},{no:1,alias:dis_confirm,remark:未认筹}]}]
	 */
	public String getNewConfirmStatus() {
		return this.newConfirmStatus;
	}
	
	/**
	 * 设置
	 * :历史客户状态:[{key:customer_status,values:[{no:0,alias:normal,remark:报备未确认},{no:1,alias:valid,remark:报备有效},{no:2,alias
	 * :has_see,remark:已带看},{no:3,alias:subscribe,remark:已认购},{no:4,alias:has_sign,remark:已签约},{no:5,alias:has_balance,
	 * remark:已结佣}]}]
	 */
	public void setOldCustomerStatus(String oldCustomerStatus) {
		this.oldCustomerStatus = oldCustomerStatus;
	}
	
	/**
	 * 获取
	 * :历史客户状态:[{key:customer_status,values:[{no:0,alias:normal,remark:报备未确认},{no:1,alias:valid,remark:报备有效},{no:2,alias
	 * :has_see,remark:已带看},{no:3,alias:subscribe,remark:已认购},{no:4,alias:has_sign,remark:已签约},{no:5,alias:has_balance,
	 * remark:已结佣}]}]
	 */
	public String getOldCustomerStatus() {
		return this.oldCustomerStatus;
	}
	
	/**
	 * 设置
	 * :新案客户状态:[{key:customer_status,values:[{no:0,alias:normal,remark:报备未确认},{no:1,alias:valid,remark:报备有效},{no:2,alias
	 * :has_see,remark:已带看},{no:3,alias:subscribe,remark:已认购},{no:4,alias:has_sign,remark:已签约},{no:5,alias:has_balance,
	 * remark:已结佣}]}]
	 */
	public void setNewCustomerStatus(String newCustomerStatus) {
		this.newCustomerStatus = newCustomerStatus;
	}
	
	/**
	 * 获取
	 * :新案客户状态:[{key:customer_status,values:[{no:0,alias:normal,remark:报备未确认},{no:1,alias:valid,remark:报备有效},{no:2,alias
	 * :has_see,remark:已带看},{no:3,alias:subscribe,remark:已认购},{no:4,alias:has_sign,remark:已签约},{no:5,alias:has_balance,
	 * remark:已结佣}]}]
	 */
	public String getNewCustomerStatus() {
		return this.newCustomerStatus;
	}
	
	/**
	 * 设置 :带看有效期
	 */
	public void setValidDays(Long validDays) {
		this.validDays = validDays;
	}
	
	/**
	 * 获取 :带看有效期
	 */
	public Long getValidDays() {
		return this.validDays;
	}
	
	public void setCanSee(Boolean canSee) {
		this.canSee = canSee;
	}
	
	/**
	 * 获取 :允许中介查看
	 */
	public Boolean getCanSee() {
		return this.canSee;
	}
	
	/**
	 * 设置 :跟进描述
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	/**
	 * 获取 :跟进描述
	 */
	public String getRemark() {
		return this.remark;
	}
	
	public String getNewCustomerStatusName() {
		return newCustomerStatus == null ? ""
			: CustomerStatusEnum.getByNo(newCustomerStatus) == null ? "" : CustomerStatusEnum.getByNo(newCustomerStatus).getDes();
	}
	
	public void setNewCustomerStatusName(String newCustomerStatusName) {
		this.newCustomerStatusName = newCustomerStatusName;
	}
	
	public String getStaffName() {
		return staffName;
	}
	
	public void setStaffName(String staffName) {
		this.staffName = staffName;
	}
	
	public String getApplyLookDay() {
		return applyLookDay;
	}
	
	public void setApplyLookDay(String applyLookDay) {
		this.applyLookDay = applyLookDay;
	}
	
	public String getSeeMode() {
		return seeMode;
	}
	
	public void setSeeMode(String seeMode) {
		this.seeMode = seeMode;
	}
	
	public Long getTargetPremisesId() {
		return targetPremisesId;
	}
	
	public void setTargetPremisesId(Long targetPremisesId) {
		this.targetPremisesId = targetPremisesId;
	}
	
	public String getSignProject() {
		return signProject;
	}
	
	public void setSignProject(String signProject) {
		this.signProject = signProject;
	}
	
	public Date getSignDate() {
		return signDate;
	}
	
	public void setSignDate(Date signDate) {
		this.signDate = signDate;
	}
	
	public BigDecimal getSignAmount() {
		return signAmount;
	}
	
	public void setSignAmount(BigDecimal signAmount) {
		this.signAmount = signAmount;
	}
	
	public BigDecimal getTotalAmount() {
		return totalAmount;
	}
	
	public void setTotalAmount(BigDecimal totalAmount) {
		this.totalAmount = totalAmount;
	}
	
	public BigDecimal getPlatformAmount() {
		return platformAmount;
	}
	
	public void setPlatformAmount(BigDecimal platformAmount) {
		this.platformAmount = platformAmount;
	}
	
	public BigDecimal getIntermediaryAmount() {
		return intermediaryAmount;
	}
	
	public void setIntermediaryAmount(BigDecimal intermediaryAmount) {
		this.intermediaryAmount = intermediaryAmount;
	}
	
	public String getTargetPremisesName() {
		return targetPremisesName;
	}
	
	public void setTargetPremisesName(String targetPremisesName) {
		this.targetPremisesName = targetPremisesName;
	}
	
	public String getFollowType() {
		return followType;
	}
	
	public void setFollowType(String followType) {
		this.followType = followType;
	}

	public String getFirsthandFollowUuid() {
		return firsthandFollowUuid;
	}

	public void setFirsthandFollowUuid(String firsthandFollowUuid) {
		this.firsthandFollowUuid = firsthandFollowUuid;
	}

	public String getAdviser() {
		return adviser;
	}

	public void setAdviser(String adviser) {
		this.adviser = adviser;
	}

	public Date getVisitTime() {
		return visitTime;
	}

	public void setVisitTime(Date visitTime) {
		this.visitTime = visitTime;
	}

    public Integer getVisitedCount() {
        return visitedCount;
    }

    public void setVisitedCount(Integer visitedCount) {
        this.visitedCount = visitedCount;
    }
}
